Method and Apparatus for Reducing Jitter in a Receiver of a Selective Combining System

ABSTRACT

A jitter reducing method in a receiver of a selective combining system includes determining a slowest cell corresponding to the receiver in the selective combining system, treating a plurality of missing packets as being received when a data stream transmitted by the slowest cell is detected to comprise the plurality of missing packets and a sequence number of a first packet in the plurality of missing packets is a sequence number of a next packet that is expected to be received in sequence, and delivering a received packet following the plurality of missing packets in sequence to an upper layer.

CROSS REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional Application No.60/594,697, filed Apr. 29, 2005, and included herein by reference.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention is a method for reducing data streams jittering ina receiver of a selective combining system, in particular a method ofavoiding the receiver temporarily storing packets that have beensuccessfully received and not delivering the packets to an upper layer,hence causing delays in processing data streams.

2. Description of the Prior Art

With advances of mobile communications devices in recent years, thereare various applications for entertainment and information services. Ina 2^(nd) generation (2G) mobile communications system, multimediaservices are mostly limited to Short Messaging Services (SMS) with eachmessage containing no more than 160 characters, and only simple ringtones are allowed, which are about 3 to 20 Kbytes, or other small datato be downloaded. Now the 3^(rd) generation mobile network technologyhas been developed with the rising of processor core performance andmultimedia services in mobile communications have catered to a higherdata transmission capacity and also a larger variety of types ofmultimedia services have been developed.

For example, according to a communications protocol specificationdeveloped by the 3^(rd) Generation Partnership Project (3GPP), theUniversal Mobile Telecommunications System (UMTS) can provide MultimediaBroadcast and Multicast Service (MBMS), which transmits service content(e.g., television programs, movies, commercials) from servers to eachuser equipment through different cells in Unacknowledged Mode (UM). Eachuser equipment may be located under coverage of many different cells. Inother words, a user equipment can receive a same service content fromdifferent cells. Thus, in order to have the user equipment correctlyprocess the service content and take advantage of this multi-routetransmission characteristic, a Radio Link Control (RLC) entity of a UMTSreceiver (i.e. the user equipment) in the prior art is able to initiatea Selective Combining Function, also called a Duplicate Avoidance andReordering Function, efficiently combining Protocol Data Units (PDUs)that may be transmitted from different sources (cells) and/orduplicating transmission from a same source to form a single order of aPDU sequence. After initiating the Duplicate Avoidance and ReorderingFunction, the RLC entity executes duplicate PDU detecting, discardingand reordering operations according to Sequence Numbers (SNs) of thePDUs. For more detailed description of the operations, please refer tofollowing statements.

First, to support the Duplicate Avoidance and Reordering Function, statevariables and protocol parameters below are defined by the specificationof the communications protocol described above:

1. Variable VR(UDR): represents an SN of a next PDU that is expected tobe received in sequence.

2. Variable VR(UDH): represents an SN of a highest numbered PDU that hasbeen received by the Duplicate Avoidance and Reordering Function.

3. Parameter DAR_Window_Size: indicates a size of a receiving window ofthe Duplicate Avoidance and Reordering Function.

The RLC entity executes the Duplicate Avoidance and Reordering Functionaccording to the variable VR(UDR) and a receiving window of theDuplicate Avoidance and Reordering Function where a receivable range ofthe receiving window is from (VR(UDH)−DAR_Window_Size+1) to VR(UDH).After initiating the Duplicate Avoidance and Reordering Function, if anSN of a received PDU lies inside the receiving window and the SN issmaller than the variable VR(UDR), or there is a PDU with the same SNexisting in a buffer, then the received PDU is discarded. Conversely, ifthe SN of the received PDU is larger than or equal to the variableVR(UDR) and there is no PDU with the same SN existing in the buffer,then the received PDU is stored in the buffer. In addition, if the SN ofthe received PDU lies outside the receiving window, the received PDU isstored in the buffer, the variable VR(UDH) is set to be the SN of thereceived PDU so as to advance the receiving window, PDUs with SNssmaller than (VR(UDH)−DAR_Window_Size+1) are discarded from the bufferand delivered to an upper layer for further operations, and the variableVR(UDR) is set to be equal to (VR(UDH)−DAR_Window_Size+1) when thevariable VR(UDR) is smaller than (VR(UDH)−DAR_Window_Size+1).Furthermore, if there is a PDU with an SN equal to the updated variableVR(UDR) existing in the buffer, the PDU with the SN equal to thevariable VR(UDR) in the buffer and all PDUs with consecutive SNs afterthe SN (i.e. from VR(UDR)+1) are discarded and delivered to the upperlayer for further operations. Finally, the variable VR(UDR) is set to beequal to a highest SN of the PDUs that have been delivered to the upperlayer plus 1.

From the above description, as the receiver receives a same PDU fromdifferent sources, the Duplicate Avoidance and Reordering Functiondiscards the duplicate PDU. However, cells are not in synchronization,so there is a time difference between cells transmissions even ifservice contents are identical. For a specific receiver, signalstransmitted by some cells arrive ‘slower’ and signals transmitted bysome cells arrive ‘faster’, meaning that signals of some cells are‘slower’ and signals of some cells are ‘faster’ to the receiver. Thus,when the receiver does not successfully receive some PDUs, the receivercannot process any successfully received PDUs of a service content thatare sequentially later than the missing PDUs but store the successfullyreceived PDUs in a buffer. The receiver waits for a slower neighboringcell to transmit PDUs that are missing. The successfully received PDUsare kept in the buffer and are not delivered to an upper layer until themissing ones are successfully received. Now, suppose the receiver (likea user equipment, wireless communication device) moves into a ‘slower’cell. Since the ‘slower’ cell has a slower timing sequence of PDUs, thesuccessfully received PDUs need to be stored in the buffer longer. Thiscauses delay in replaying the service content. In contrast, if thereceiver moves into a ‘faster’ cell instead, there are PDUs that thereceiver cannot get so that a data stream will jump forward. Whenbroadcasting sports games, movies, songs or music, this kind of delayingor jittering situations affect program fluency, deteriorate broadcastingquality and reduce user interest.

For illustration, please refer to FIG. 1 to FIG. 3. FIG. 1 to FIG. 3 arediagrams representing variables and SNs of received PDUs of a receiverthat moves between a faster cell A and a slower cell B. Suppose thatpackets transmitted by the cell A are ahead of those transmitted by thecell B by 9 Transmission Time Intervals (TTIs), and parameterDAR_Window_Size is 10. In FIG. 1 to FIG. 3, each square represents aTTI, which is set to be 20 milliseconds (ms) in general. The first andsecond rows represent SNs of PDUs the receiver received from the cell Aand the cell B respectively, where shaded squares denote PDUs that arenot successfully received. The third and fifth rows represent values ofthe variable VR(UDH) and the variable VR(UDR) respectively. The fourthrow is a value of (VR(UDH)−DAR_Window_Size+1), which is a start point ofthe receiving window. The sixth row represents SNs of PDUs that aredelivered to the upper layer from the buffer. The seventh row representsSNs of PDUs that the receiver replays at the end. Additionally,contiguous shaded squares mean PDUs cannot be received due to thereceiver moving out of coverage of a cell, and a single shaded squarerepresents a SN of a PDU that is missing during radio transmission.

Update timing of each row is illustrated as follows. The variableVR(UDH) of the third row is updated when data of the first and secondrows are received. The fourth row is calculated and updated as the thirdrow is updated. The sixth row shows SNs (may be more than 1) to bedelivered to the upper layer when the first and second rows receiveddata at a previous TTI (previous column). (In practice, delivering PDUsto upper layer does not take 20 ms. FIG. 1 to FIG. 3 are forillustration purpose only and are not drawn according to a detailed timescale.) The variable VR(UDR) in the fifth row is updated afterdelivering data of the sixth row to the upper layer. There is a fixedtime difference between the replay value of the seventh row and thevalue of the sixth row. The time difference shown in FIG. 1 to FIG. 3 isone square, which represents 20 ms, but the time difference can belonger or shorter in real practice.

When the system is providing a service of broadcasting a data stream,since a program is a continuous data stream with only one PDU from thedata stream being played at a TTI, when a replay software receives aplurality of PDUs at the same time, PDUs that have not been replayed aretemporarily stored in a buffer controlled by the replay software andreplayed one by one. In the prior art, only when it is assured that amissing PDU cannot be obtained (i.e. after the missing PDU had movedoutside the receiving window), the Duplicate Avoidance and ReorderingFunction is allowed to deliver the following PDU or a plurality of PDUsto the upper layer from the buffer. This procedure leads todiscontinuity in program replays.

For example, in FIG. 1 to FIG. 3, between a time point 100 and a timepoint 102, the receiver is out of a coverage of the cell A so that thereceiver cannot receive PDUs with SN=30 to 55 from the cell A. Supposethat the receiver does not receive a PDU with SN=31 from the cell B atthe time point 120, and a receiving window size of the DuplicateAvoidance and Reordering Function is 10. PDUs with SN=32 to 41 aretemporarily stored until a time point 110, when the PDUs with SN=32 to41 altogether are delivered to the upper layer. This means that after aPDU with SN=30 been replayed at a time point 130, 10 TTIs go by beforereplaying the PDU with SN=32 at a time point 140. In other words, sincethe receiver moves out of the coverage of the faster cell A, thereceiver can only receive the data stream from the slower cell B. If thereceiver cannot receive the PDU with SN=31 at the time point 120, thereis a long interruption in replaying the data stream. Hence an originalinterval of 1 TTI (20 ms) is delayed to be 10 TTIs (200 ms) and causesdiscontinuity in program replay and affects program quality. Similarly,after replaying a PDU with SN=76 at a time point 150, there is a delayof 8 TTIs before replaying a PDU with SN=78 at a time point 160. In evenworse cases, if the receiving window size of the Duplicate Avoidance andReordering Function is large (for instance, DAR_Window_Size=64), therecan be a data stream delay longer than 1 second that leads to obviousprogram interruptions, which may get users frustrated.

Furthermore, suppose that the receiver is out of the coverage of thecell B between the time points 104 and 106, so that the receiver cannotreceive PDUs with SN=49 to 63 from the cell B. This means that, thereceiver cannot receive PDUs with SN=49 to 55 from the cell A nor thecell B. Therefore, after the receiver replays a PDU with SN=48 at a timepoint 142, the receiver immediately replays a PDU with SN=56 at a nextTTI (i.e. a time point 144), meaning jumping forward 7 TTIs incomparison to an original replay timing. Again, if the receiving windowof the Duplicate Avoidance and Reordering Function is large (forinstance, DAR_Window_Size=64), there can be a jump larger than 1 second,leading to obvious program pauses and frustrated users.

In summary, UMTS provides MBMS in UM and the receiver is able to receivethe same PDU from different cells. For better data receiving efficiency,the RLC entity of the receiver can initiate the Duplicate Avoidance andReordering Function, which discards duplicate PDUs. However, sincedifferent cells may have time difference for a same packet, packets sentfrom some cells arrive at the receiver slower than packets sent fromother cells. In the prior art, if the receiver moves into a slower celland if a packet is lost, there is a time delay due to storing theincomplete PDU sequence in the buffer and hence the service content isreplayed with an obvious interruption, which affects program fluency andfrustrates users. Additionally, if the receiver moves into a fastercell, the receiver cannot receive several PDUs and the received datastream is jumped forward, which causes discontinuity in program contentand deteriorate program quality.

SUMMARY OF THE INVENTION

A jitter reducing method in a receiver of a selective combining system,the method includes determining a slowest cell corresponding to thereceiver in the selective combining system, treating a plurality ofmissing packets as being received when a data stream transmitted by theslowest cell is detected to comprise the plurality of missing packetsand a sequence number of a first packet in the plurality of missingpackets is a sequence number of a next packet that is expected to bereceived in sequence, and delivering a received packet following theplurality of missing packets in sequence to an upper layer.

These and other objectives of the present invention will no doubt becomeobvious to those of ordinary skill in the art after reading thefollowing detailed description of the preferred embodiment that isillustrated in the various figures and drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 to FIG. 3 are diagrams representing variables and SNs of receivedPDUs when a receiver moves between a faster cell and a slower cell inUMTS of the prior art.

FIG. 4 is a block diagram of a mobile communications device.

FIG. 5 is a schematic diagram of the program code in FIG. 4.

FIG. 6 is a flow chart of a procedure of a first embodiment for reducingdata stream jittering in a selective combining system in the presentinvention.

FIG. 7 to FIG. 9 are diagrams representing variables and SNs of receivedPDUs when a receiver moves between a faster cell and a slower cellaccording to the procedure in FIG. 6.

FIG. 10 is a flow chart of a procedure of a second embodiment forreducing data stream jittering in a selective combining system in thepresent invention.

FIG. 11 to FIG. 13 are diagrams representing variables and SNs ofreceived PDUs when a receiver moves between a faster cell and a slowercell according to the procedure in FIG. 10.

FIG. 14 is a flow chart of a procedure of a third embodiment forreducing data stream jittering in a selective combining system in thepresent invention.

DETAILED DESCRIPTION

The present invention is for a selective combining system, which cancombine PDUs transmitted from different sources (cells), throughinitiating a Duplicate Avoidance and Reordering Function, to form asingle ordered PDU sequence. The following descriptions are for use in amobile communications system, such as UMTS mentioned above.

First of all, please refer to FIG. 4. FIG. 4 is a block diagram of amobile communications device 400. For simplicity, FIG. 4 only shows aninput device 402, an output device 404, a control circuit 406, a centralprocessor 408, a storage device 410, a program code 412, and atransceiver 414 of the mobile communications device 400. In the mobilecommunications device 400, the control circuit 406 executes the programcode 412 stored in the storage device 410 with the central processor408, and then controls operations of the mobile communications device400. The mobile communications device 400 can receive signals inputtedby users through the input device 402, or output signals like images,sounds etc. through the output device 404 (such as monitor, speakeretc.). The transceiver 414 is used for receiving radio signals anddelivering received radio signals to the control circuit 406 ortransmitting signals submitted from the control circuit 406 in a radiomanner. In a structure of a communications protocol, the transceiver 414is known as a part of Layer one, whereas the control circuit 406 is anapplication of Layer two and Layer three.

Please refer to FIG. 5. FIG. 5 is a schematic diagram of the programcode 412 in FIG. 4. The program code 412 comprises an applicationprogram layer 500, a Layer three interface 502, a Layer two interface506, and a Layer one interface 518. When transmitting signals, the Layertwo interface 506 stores a plurality of Service Data Units (SDUs) 508submitted from the Layer three interface 502 in a buffer 512. Then, theLayer two interface 506 generates a plurality of PDUs 514 according tothe SDUs 508 stored in the buffer 512 and outputs the generated PDUs 514to a destination through the Layer one interface 518. In reverse, whenreceiving a radio signal, the signal is received through the Layer oneinterface 518 and the Layer one interface 518 delivers PDUs 514 to theLayer two interface 506. The Layer two interface 506 reassembles thePDUs 514 to SDUs 508 and stores the SDUs 508 in the buffer 512. At last,the Layer two interface 506 delivers the SDUs 508 stored in the buffer512 to the Layer three interface 502.

The 3^(rd) generation mobile communications system UMTS can provideMBMS, which transmits service content (e.g. movies, music, commercialsand other multimedia information) from servers to each user equipmentthrough different cells in UM. In order to have the mobilecommunications device 400 correctly process the service content, theLayer two interface 506 of the program code 412 is able to initiate aSelective Combining Function, also called a Duplicate Avoidance andReordering Function, which efficiently combines Protocol Data Units(PDUs), which may be transmitted from different sources (cells) and/orrepetitively transmitted from a same source, to form a single orderedPDU sequence. In this case, the present invention provides a duplicateavoidance and reordering program code 509 to reduce jittering occurredin data streaming and improves program quality.

Please refer to FIG. 6. FIG. 6 is a flow chart of a procedure 600 of afirst embodiment for reducing data stream jittering in a selectivecombining system. The selective combining system can be a mobilecommunications system, such as UMTS, operating in UM. The procedure 600can be compiled into the duplicate avoidance and reordering program code509. The procedure 600 comprises following steps.

Step 602: start.

Step 604: determine a slowest cell among all cells that can provideservice to a receiver in the selective combining system, a timingsequence of the data stream transmitted by the slowest cell is behind orequal to timing sequences of data streams transmitted by all cells thatare capable of providing services to the receiver.

Step 606: when a data stream transmitted by the slowest cell is detectedto comprise a plurality of missing packets and a sequence number of afirst packet in the plurality of missing packets is a sequence number ofa next packet that is expected to be received in sequence, treat theplurality of missing packets as being successfully received.

Step 608: deliver a received packet following the plurality of missingpackets in sequence to an upper layer.

Step 610: end.

According to the procedure 600 of the present invention, the receiverdetermines a slowest cell according to timing sequences of data streamstransmitted by all available cells. The slowest cell transmits a datastream with a timing sequence that is behind or equal to timingsequences of data streams from other cells. If the data streamtransmitted by the slowest cell comprises at lease one missing packet,and a first missing packet has an SN equal to an SN of a next PDU thatis expected to be received (i.e. the variable VR(UDR)), the plurality ofmissing packets is treated as received. This means that, if the receivercannot receive a next expected packet from the slowest cell, the presentinvention considers this missing packet as received, so that thereceiver can deliver packets after the missing packet in sequence to anupper layer. This enables other successfully received packets followingthe missing packet to be delivered to the upper layer and avoids programinterruptions as in the prior arts. In real practices, the variableVR(UDR) is incremented by the number of missing packets, so that thereceiver determines the missing packets as received. Consequently, theprocedure 600 avoids the receiver from holding successfully receivedpackets in the buffer unnecessarily and hence achieves a purpose ofreducing data stream Littering.

For example, please refer to FIG. 7 to FIG. 9. As displayed in FIG. 7 toFIG. 9, a first row and a second row (i.e. SNs of PDUs received by thereceiver from a cell A1 and a cell B1 respectively) are the same asdisplayed in the first row and the second row (i.e. SNs of PDUs receivedby the receiver from the cell A and the cell B respectively) in FIG. 1to FIG. 3. They have the same symbols, numbers, and descriptions to havea clear comparison between the procedure 600 of the present inventionand the prior art.

From FIG. 7 to FIG. 9, a time sequence of a data stream transmitted bythe cell B1 is behind the cell A1. Therefore, the procedure 600 firstdetermines that the cell B1 is the slowest cell followed by the receiverdetermining a packet with SN=31 is missing from the data sequencetransmitted by the slowest cell B1 at a time point 722 (should have beenreceived at a time point 720 but was not), and the variable VR(UDR) isequal to 31. Therefore, the receiver increments the variable VR(UDR) bya number of jumped PDUs, which is 1 in this case, so that at a timepoint 220 the variable VR(UDR) is set to be 32. This means that thereceiver considers the PDU with SN=31 as received and delivers a PDUwith SN=32 to the upper layer for further operations.

Even though the PDU with SN=31 was not received by the receiver, usersdo not sense a discontinuity in program replays as every TTI is veryshort (20 ms) and not replaying the PDU with SN=31 (from a time point730 to a time point 740) is not significant. In other words, when thereceiver cannot receive the PDU with SN=31 from the slowest cell B1 andthe variable VR(UDR) equals 31, the present invention considers the PDUwith SN=31 as received, so that PDUs with SN=32 or more are not held ina buffer unnecessarily and instead are delivered to the upper layerwithout delay. This maintains program replay fluency and improvesprogram quality. In comparison, the prior art waits for the variableVR(UDR) to be out of the receiving window of the Duplicate Avoidance andReordering Function before delivering the following stored PDUs to theupper layer and, thus, affects the program fluency.

Similarly, when the receiver cannot receive the PDU with SN=77 from theslowest cell B1 at a time point 235 and the variable VR(UDR) is equal to77, the receiver considers the PDU with SN=77 as received, i.e.incrementing the variable VR(UDR) by 1 so that at a time point 240, thevariable VR(UDR) is set to be 78, and at a time point 250 the PDU withSN=78 is delivered to the upper layer for replay. Thus, the PDUs withSN=78 and greater are not held in a buffer but are delivered to theupper layer without delay.

Additionally, from FIG. 7 to FIG. 9, between a time point of 742 and atime point of 748, the receiver cannot receive PDUs with SN=49 to 63from the slowest cell B1, but it is not known until a time point 750. Atthe time point 750, after the receiver receives a PDUs with SN=64, thereceiver then determines a situation as described above. Thus, betweenthe time point of 742 and the time point of 748, a determiningrequirement of the step 606 in the procedure 600 does not stand, thestep 608 is not executed and the variable VR(UDR) is updated as it is inthe prior art. After the receiver replays a PDUs with SN=48 at a timepoint 232, there are 7 TTIs passing by before replaying a PDUs withSN=56 at a time point 234. This means, a time interval between replayingthe PDUs with SN=48 and replaying the PDUs with SN=56 exactly equals tothe original time interval between the two PDUs. The user senses a partof the program is discontinued, but there is no time jump as the programresumes later. The 7 TTIs between the time point 232 and the time point234 correspond to the missing PDUs with SN=49 to 55. After the receiverreplays the PDUs with SN=48 at the time point 232, the receiver does notreplay the PDUs with SN=56 immediately at a next TTI of the time point232 so that the user will not be confused by discontinuity of theservice content.

With the procedure 600 of the present invention, the receiver reducesjittering in data streams that deteriorates program quality. But theprocedure 600 is a solution only for a mobile that can determine the“globally” slowest cell among all cells that can provide services. Theglobal slowest cell is not easy to track when the mobile moves around.Therefore, the present invention provides another jitter reducing methodfor data streams that only requires a slowest cell in local area to bedetermined, i.e., a local slowest cell.

Please refer to FIG. 10. FIG. 10 is a flow chart of a procedure 1000 ofa second embodiment for reducing data stream jittering in a selectivecombining system. The selective combining system can be a mobilecommunications system, such as UMTS, operating in UM. The procedure 1000can be compiled into the duplicate avoidance and reordering program code509. The procedure 1000 comprises following steps.

Step 1002: start.

Step 1004: determine a local slowest cell among neighboring cells thatcan provide service to a receiver in the selective combining system, atiming sequence of the data stream transmitted by the local slowest cellis behind or equal to timing sequences of data streams transmitted byall neighboring cells that are currently capable of providing servicesto the receiver.

Step 1006: when a data stream transmitted by the local slowest cell isdetected to comprise a plurality of missing packets and a sequencenumber of a first packet in the plurality of missing packets is asequence number of a next packet that is expected to be received insequence, treat the plurality of missing packets as being received.

Step 1008: deliver a received packet following the plurality of missingpackets in sequence to an upper layer.

Step 1010: end.

According to the procedure 1000 of the present invention, the receiverdetermines a local slowest cell according to timing sequences of datastreams transmitted by all neighboring cells. The local slowest celltransmitting a data stream with a timing sequence that is behind orequal to timing sequences of data streams from other neighboring cells.This means that a cell having a slowest timing sequence of data streamsamong all neighboring cells is the local slowest cell where “theneighboring cells” is in a term indicating that the receiver can receiveservices from the cells currently. A set of the neighboring cells can beaffected by a movement of the receiver, landscapes, land materials etc.and is not the present invention emphasis, so it will not be explainedfurther here.

If the data stream transmitted by the local slowest cell comprises atlease one missing packet, and a first missing packet has an SN equal toan SN of a next PDU that is expected to be received (i.e. the variableVR(UDR)), the plurality of missing packets are treated as received. Thismeans that, if the receiver cannot receive a next expected packet fromthe local slowest cell, the present invention considers this missingpacket as received, so that the receiver can deliver packets after themissing packet in sequence to an upper layer. This enables othersuccessfully received packets following the missing packet to bedelivered to the upper layer and avoids program interruptions as in theprior arts. In real practices, the variable VR(UDR) is incremented bythe number of missing packets, so that the receiver determines themissing packets as received. Consequently, the procedure 1000 avoids thereceiver from holding successfully received packets in the bufferunnecessarily and hence achieves a purpose of reducing data streamjittering. It is noted that the ‘local slowest cell’ is a cell whosetiming sequence of data streams is behind timing sequences of datastreams transmitted from any neighboring cells, and it is different fromthe ‘slowest cell’ described in the procedure 600.

For example, please refer to FIG. 11 to FIG. 13. As displayed in FIG. 11to FIG. 13, a first row and a second row (i.e. SNs of PDUs received bythe receiver from a cell A2 and a cell B2 respectively) are the same asdisplayed in the first row and the second row (i.e. SNs of PDUs receivedby the receiver from the cell A and the cell B respectively) in FIG. 1to FIG. 3. They have the same symbols, numbers, and descriptions to havea clear comparison between the procedure 1000 of the present inventionand the prior art. According to the procedure 1000 of the presentinvention, the receiver first determines the local slowest cellaccording to timing sequences of data streams transmitted at differenttime points from all neighboring cells.

At a time point 1120 and a time point 1235, the cell B2 is the localslowest cell while, at time point 310, the local slowest cell is a cellA2 because the cell B2 is not a neighboring cell at this time point. Thereceiver determines a packet with SN=31 is missing from the datasequence transmitted by the local slowest cell B2 at a time point 1122(should have been received at a time point 1120 but was not), and thevariable VR(UDR) is equal to 31. Therefore, the receiver increments thevariable VR(UDR) by a number of jumped PDUs, which again is 1 in thiscase, so that at a time point 1220 the variable VR(UDR) is set to be 32.This means that the receiver considers the PDU with SN=31 as receivedand can deliver a PDU with SN=32 to the upper layer for furtheroperations. Even though the PDU with SN=31 was not received by thereceiver, users will not sense a discontinuity in program replays asevery TTI is very short (20 ms) and not replaying the PDU with SN=31(from a time point 1130 to a time point 1140) is not significant. Inother words, when the receiver cannot receive the PDU with SN=31 fromthe local slowest cell B2 and the variable VR(UDR) equals 31, thepresent invention considers the PDU with SN=31 as received, so that PDUswith SN=32 or greater are not held in the buffer unnecessarily, ratherare delivered to the upper layer without delay. This maintains programreplay fluency and improves program quality.

In comparison, the prior art waits for the variable VR(UDR) to be out ofthe receiving window of the Duplicate Avoidance and Reordering Functionbefore delivering the following stored PDUs to the upper layer andsignificantly affects program fluency.

Similarly, when the receiver cannot receive the PDU with SN=77 from thelocal slowest cell B2 at a time point 1235 and the variable VR(UDR) isequal to 77, the receiver considers the PDU with SN=77 as received, i.e.incrementing the variable VR(UDR) by 1 so that at a time point 1240, thevariable VR(UDR) is set to be 78, and at a time point 1250 the PDU withSN=78 is delivered to the upper layer for replay. Thus, the PDUs withSN=78 and greater are not held in the buffer but are delivered to theupper layer without further delay. Thus, the procedure 1000 maintainsprogram fluency and improves program quality.

In addition, when at the time point 312, the local slowest cell is thecell A2. The receiver receives a PDU with SN=68, so that the receiverdetermines a PDU with SN=67 was not received from the local slowest cellA2 at a time point 310, and the variable VR(UDR) is 67. Therefore, thereceiver considers the PDU with SN=67 as received, i.e., the receiverincrements the variable VR(UDR) by 1 so that at the time point 320, thevariable VR(UDR) is set to be 68 and the PDU with SN=68 is delivered tothe upper layer at a time point 330 for replay. Note that at the timepoint 320, the receiver had considered the PDU with SN=67 as received(but actually it was not received). Thus, after replaying a PDU withSN=66 at the time point 350, the receiver jumps to replay the PDU withSN=68 so that jittering does not have significant affects (only jumpsone TTI). Other than that, at a time point 360, there is a short blankbetween a PDU with SN=74 and a PDU with SN=75. The short blank also haslimited affects on program replaying.

Furthermore, as the receiver changes cells, the receiver cannot receivePDUs with SN=49 to 55. Hence after the receiver replays a PDUs withSN=48 at a time point 1232, there are 7 TTIs going by before replaying aPDUs with SN=56 at a time point 1234. This means, a time intervalbetween replaying the PDUs with SN=48 and replaying the PDUs with SN=56exactly equals to a time interval originally between the two PDUs sothat the user senses a part of the program is discontinued, but thereare no time jumps as the program resumes later. The 7 TTIs between thetime point 1232 and the time point 1234 correspond to the missing PDUswith SN=49 to 55. After the receiver replays the PDU with SN=48 at thetime point 232, the receiver does not replay the PDU with SN=56immediately at a next TTI of the time point 1232 so that the user, dueto the time continuity of the service content, will not be confused.However in some situations, if a time delay is long, it affects afluency in service content replaying and causes user inconvenience.Therefore, the present invention provides another embodiment to solvethe described problem.

Please refer to FIG. 14. FIG. 14 is a flow chart of a procedure 1400 ofa third embodiment for reducing data stream jittering in a selectivecombining system. The selective combining system can be a mobilecommunications system, such as UMTS, operating in UM. The procedure 1400comprises following steps.

Step 1402: start.

Step 1404: determine a minimum transition time period required to changeto another cell in the selective combining system.

Step 1406: keep a maximum time difference of transmitting packetsbetween cells to be less than or equal to the minimum transition time.

Step 1408: end.

Therefore, according to the procedure 1400 of the present invention, anetwork transmitter determines a minimum transition time required for areceiver to change to another cell, then keeps a time difference oftransmitting packets between cells to be less than or equal to theminimum transition time. For example, in FIG. 1 to FIG. 3, a minimumtransition time required for changing cells is 2 TTIs, therefore thenetwork transmitter controls a time difference between the cell A andthe cell B from 9 TTIs, as shown in FIG. 1 to FIG. 3, to be within 2TTIs. This can be achieved by keeping the timing sequence of the cell Bthe same and shifting the timing sequence of the cell A back 7 TTIs sothat an SN of the time point 102 should be changed to 48 from 55 asshown, and there will be no large data losses in transition times later.In addition, after keeping a transmitting time difference between cellsin an appropriate range, the receiving window size of the DuplicateAvoidance and Reordering Function can be set to be a value correspondsto the time difference.

In summation, for MBMS applications, the receiver is able to receive thesame PDU from different cells. For better data receiving efficiency, theRLC entity of the receiver can initiate the Duplicate Avoidance andReordering Function, which discards and reorders duplicate PDUs.However, cells are not in synchronization so that there is a timedifference between cells transmission even if service contents areidentical. In the present invention, if the receiver cannot receive anext expected packet from a slowest cell, the present inventionconsiders this missing packet as received so that the receiver candeliver packets after the missing packet in sequence to upper layer forreplay. This avoids the prior art problem of having other successfullyreceived packets that are after the missing packet in sequence beingheld in a buffer and not sent to the upper layer, which leads to delayin data stream processing or replaying. The present invention maintainsprogram replay fluency and improves program quality. Additionally, thepresent invention keeps a time difference of transmitting between cellsto be less than or equal to a minimum transition time required to changecells, to avoid data losses when the receiver moves and changes cells.Therefore, the present invention can reduce jittering in data streams ina selective combining system and have a better program quality with morefluent service contents replaying.

Those skilled in the art will readily observe that numerousmodifications and alterations of the device and method may be made whileretaining the teachings of the invention. Accordingly, the abovedisclosure should be construed as limited only by the metes and boundsof the appended claims.

1. A jitter reducing method in a receiver of a selective combiningsystem, the method comprising: determining a slowest cell correspondingto the receiver in the selective combining system; treating a pluralityof missing packets as being received, when a data stream transmitted bythe slowest cell is detected to comprise the plurality of missingpackets and a sequence number of a first packet in the plurality ofmissing packets is a sequence number of a next packet that is expectedto be received in sequence; and delivering a received packet followingthe plurality of missing packets in sequence to an upper layer.
 2. Themethod of claim 1 wherein treating the plurality of missing packets asbeing received is incrementing the sequence number of the next packetthat is expected to be received in sequence by a number of the pluralityof missing packets.
 3. The method of claim 2 wherein the number of theplurality of missing packets is
 1. 4. The method of claim 1 wherein atiming sequence of the data stream transmitted by the slowest cell isbehind or equal to timing sequences of data streams transmitted by allother cells that are capable of providing services to the receiver. 5.The method of claim 1 wherein a timing sequence of the data streamtransmitted by the slowest cell is behind or equal to timing sequencesof data streams transmitted by all neighboring cells that are currentlycapable of providing services to the receiver.
 6. The method of claim 1wherein the receiver is operating in Unacknowledged Mode (UM).
 7. Areceiving device comprising a central processing unit in electricalcommunications with a memory, the memory comprising program code forimplementing the method of claim
 1. 8. A jitter reducing method in aselective combining system, the method comprising: determining a minimumtransition time period required to change to another cell in theselective combining system; and keeping a maximum time difference oftransmitting packets between cells to be less than or equal to theminimum transition time.
 9. The method of claim 8 further comprisingsetting a size of a duplicate avoidance and reordering function windowaccording to the minimum transition time.
 10. The method of claim 9wherein the selective combining system is operating in UnacknowledgedMode (UM).